//
//  MHActionSheetCell.swift
//  Kool Carsaleman
//
//  Created by huang weiqiang on 2020/11/17.
//  Copyright © 2020 Kool Car. All rights reserved.
//

import UIKit

protocol MHActionSheetCellDelegate: NSObjectProtocol {
    func didSelectCellAtIndex(tagIndex: NSInteger, obj: AnyObject);
}


class MHActionSheetCell: UITableViewCell {
    var delegate: MHActionSheetCellDelegate!
    var tableView: UITableView!
    var dataArray = NSMutableArray()
    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        self.tableView = UITableView.init(frame: CGRect.init(x: 0, y: 0, width: kScreenWidth, height: 100), style: .grouped)
        self.tableView.register(SelectSalemanSubCell.self , forCellReuseIdentifier: "SelectSalemanSubCell")
        self.tableView.delegate = self
        self.tableView.dataSource = self
        self.tableView.backgroundColor = UIColor.white
        self.tableView.rowHeight = UITableViewAutomaticDimension
        self.tableView.estimatedRowHeight = 56
        self.tableView.separatorStyle = .none
        self.tableView.isScrollEnabled = false
        self.contentView.addSubview(self.tableView)
        self.tableView.tableHeaderView = UIView.init(frame: CGRect.init(x: 0, y: 0, width: 0, height: 0.1))
        self.tableView.tableFooterView = UIView.init(frame: CGRect.init(x: 0, y: 0, width: 0, height: 0.1))
        self.tableView.snp.makeConstraints { (make) in
            make.left.right.equalTo(0)
            make.top.bottom.equalTo(0)
            make.height.equalTo(45)
        }
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    func setMhActionCellData(data: NSMutableArray) {
        self.dataArray = data
        var tempH: CGFloat = CGFloat(data.count) * 56
        if tempH > kScreenHeight/2 {
            tempH = kScreenHeight/2
        }
        self.tableView.snp.updateConstraints { (make) in
            make.height.equalTo(tempH)
        }
        self.tableView.reloadData()
    }
}



extension MHActionSheetCell: UITableViewDelegate, UITableViewDataSource {
    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return self.dataArray.count
    }
    
    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 0.01
    }
    
    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
        return 0.01
    }
    
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 56
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "SelectSalemanSubCell", for: indexPath) as! SelectSalemanSubCell
        if self.dataArray.count > indexPath.row {
            let itemModel = self.dataArray[indexPath.row]
            //一般的actionSheet
            cell.titleLab.text = (itemModel as! String)
        }
        cell.selectionStyle = .default
        cell.clipsToBounds = true
        return cell
    }
    
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)
        if self.dataArray.count > indexPath.row {
            let itemObj = self.dataArray[indexPath.row]
            self.delegate?.didSelectCellAtIndex(tagIndex: indexPath.row, obj: itemObj as AnyObject)
        }
    }
}



class SelectSalemanSubCell: UITableViewCell {
    var titleLab: UILabel!
    var lineView: UIView!
    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        self.titleLab = UILabel.init(frame: CGRect.init(x: 0, y: 0, width: kScreenWidth, height: 56))
        self.titleLab.backgroundColor = UIColor.clear
        self.titleLab.textAlignment = .center
        self.titleLab.font = UIFont.init(name: Theme.PingFangSCRegular, size: 18)
        self.titleLab.textColor = Theme.titleLabColor
        self.contentView.addSubview(self.titleLab)

        self.lineView = UIView.init(frame: CGRect.init(x: 0, y: 55.5, width: kScreenWidth, height: 0.5))
        self.lineView.backgroundColor = UIColor.init(hex: 0xE1E3E6, alpha: 1)
        self.contentView.addSubview(self.lineView)
    }

    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}
